#include <map>
#include <string>

#include <logger.h>

enum class Enum {
    A,
    B,
};

static const std::map<Enum, std::string> globalEnumStringMap = {
    {Enum::A, "Enum::A"},
    {Enum::B, "Enum::B"},
};

static inline const std::string &GetStringByEnum(int e)
{
    return globalEnumStringMap.at(static_cast<Enum>(e));
}

static inline const std::string &GetStringByEnum(Enum e)
{
    return globalEnumStringMap.at(e);
}

int main()
{
    VALUE_LOGGER(GetStringByEnum(Enum::A));
    VALUE_LOGGER(GetStringByEnum(1));
    return 0;
}
